home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / fcntl.h < prev    next >
Encoding:
C/C++ Source or Header  |  2006-05-08  |  5.8 KB  |  177 lines

  1. /* Copyright (C) 1991,1992,1994-2001,2003,2004 Free Software Foundation, Inc.
  2.    This file is part of the GNU C Library.
  3.  
  4.    The GNU C Library is free software; you can redistribute it and/or
  5.    modify it under the terms of the GNU Lesser General Public
  6.    License as published by the Free Software Foundation; either
  7.    version 2.1 of the License, or (at your option) any later version.
  8.  
  9.    The GNU C Library is distributed in the hope that it will be useful,
  10.    but WITHOUT ANY WARRANTY; without even the implied warranty of
  11.    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  12.    Lesser General Public License for more details.
  13.  
  14.    You should have received a copy of the GNU Lesser General Public
  15.    License along with the GNU C Library; if not, write to the Free
  16.    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  17.    02111-1307 USA.  */
  18.  
  19. /*
  20.  *    POSIX Standard: 6.5 File Control Operations    <fcntl.h>
  21.  */
  22.  
  23. #ifndef    _FCNTL_H
  24. #define    _FCNTL_H    1
  25.  
  26. #include <features.h>
  27.  
  28. /* This must be early so <bits/fcntl.h> can define types winningly.  */
  29. __BEGIN_DECLS
  30.  
  31. /* Get the definitions of O_*, F_*, FD_*: all the
  32.    numbers and flag bits for `open', `fcntl', et al.  */
  33. #include <bits/fcntl.h>
  34.  
  35. /* For XPG all symbols from <sys/stat.h> should also be available.  */
  36. #ifdef __USE_XOPEN
  37. # include <sys/stat.h>
  38. #endif
  39.  
  40. #ifdef    __USE_MISC
  41. # ifndef R_OK            /* Verbatim from <unistd.h>.  Ugh.  */
  42. /* Values for the second argument to access.
  43.    These may be OR'd together.  */
  44. #  define R_OK    4        /* Test for read permission.  */
  45. #  define W_OK    2        /* Test for write permission.  */
  46. #  define X_OK    1        /* Test for execute permission.  */
  47. #  define F_OK    0        /* Test for existence.  */
  48. # endif
  49. #endif /* Use misc.  */
  50.  
  51. /* XPG wants the following symbols.  */
  52. #ifdef __USE_XOPEN        /* <stdio.h> has the same definitions.  */
  53. # define SEEK_SET    0    /* Seek from beginning of file.  */
  54. # define SEEK_CUR    1    /* Seek from current position.  */
  55. # define SEEK_END    2    /* Seek from end of file.  */
  56. #endif    /* XPG */
  57.  
  58. /* Do the file control operation described by CMD on FD.
  59.    The remaining arguments are interpreted depending on CMD.
  60.  
  61.    This function is a cancellation point and therefore not marked with
  62.    __THROW.  */
  63. extern int fcntl (int __fd, int __cmd, ...);
  64.  
  65. /* Open FILE and return a new file descriptor for it, or -1 on error.
  66.    OFLAG determines the type of access used.  If O_CREAT is on OFLAG,
  67.    the third argument is taken as a `mode_t', the mode of the created file.
  68.  
  69.    This function is a cancellation point and therefore not marked with
  70.    __THROW.  */
  71. #ifndef __USE_FILE_OFFSET64
  72. extern int open (__const char *__file, int __oflag, ...) __nonnull ((1));
  73. #else
  74. # ifdef __REDIRECT
  75. extern int __REDIRECT (open, (__const char *__file, int __oflag, ...), open64)
  76.      __nonnull ((1));
  77. # else
  78. #  define open open64
  79. # endif
  80. #endif
  81. #ifdef __USE_LARGEFILE64
  82. extern int open64 (__const char *__file, int __oflag, ...) __nonnull ((1));
  83. #endif
  84.  
  85. /* Create and open FILE, with mode MODE.  This takes an `int' MODE
  86.    argument because that is what `mode_t' will be widened to.
  87.  
  88.    This function is a cancellation point and therefore not marked with
  89.    __THROW.  */
  90. #ifndef __USE_FILE_OFFSET64
  91. extern int creat (__const char *__file, __mode_t __mode) __nonnull ((1));
  92. #else
  93. # ifdef __REDIRECT
  94. extern int __REDIRECT (creat, (__const char *__file, __mode_t __mode),
  95.                creat64) __nonnull ((1));
  96. # else
  97. #  define creat creat64
  98. # endif
  99. #endif
  100. #ifdef __USE_LARGEFILE64
  101. extern int creat64 (__const char *__file, __mode_t __mode) __nonnull ((1));
  102. #endif
  103.  
  104. #if !defined F_LOCK && (defined __USE_MISC || (defined __USE_XOPEN_EXTENDED \
  105.                            && !defined __USE_POSIX))
  106. /* NOTE: These declarations also appear in <unistd.h>; be sure to keep both
  107.    files consistent.  Some systems have them there and some here, and some
  108.    software depends on the macros being defined without including both.  */
  109.  
  110. /* `lockf' is a simpler interface to the locking facilities of `fcntl'.
  111.    LEN is always relative to the current file position.
  112.    The CMD argument is one of the following.  */
  113.  
  114. # define F_ULOCK 0    /* Unlock a previously locked region.  */
  115. # define F_LOCK  1    /* Lock a region for exclusive use.  */
  116. # define F_TLOCK 2    /* Test and lock a region for exclusive use.  */
  117. # define F_TEST  3    /* Test a region for other processes locks.  */
  118.  
  119. # ifndef __USE_FILE_OFFSET64
  120. extern int lockf (int __fd, int __cmd, __off_t __len);
  121. # else
  122. # ifdef __REDIRECT
  123. extern int __REDIRECT (lockf, (int __fd, int __cmd, __off64_t __len), lockf64);
  124. # else
  125. #  define lockf lockf64
  126. # endif
  127. # endif
  128. # ifdef __USE_LARGEFILE64
  129. extern int lockf64 (int __fd, int __cmd, __off64_t __len);
  130. # endif
  131. #endif
  132.  
  133. #ifdef __USE_XOPEN2K
  134. /* Advice the system about the expected behaviour of the application with
  135.    respect to the file associated with FD.  */
  136. # ifndef __USE_FILE_OFFSET64
  137. extern int posix_fadvise (int __fd, __off_t __offset, __off_t __len,
  138.               int __advise) __THROW;
  139. # else
  140. # ifdef __REDIRECT_NTH
  141. extern int __REDIRECT_NTH (posix_fadvise, (int __fd, __off64_t __offset,
  142.                        __off64_t __len, int __advise),
  143.                posix_fadvise64);
  144. # else
  145. #  define posix_fadvise posix_fadvise64
  146. # endif
  147. # endif
  148. # ifdef __USE_LARGEFILE64
  149. extern int posix_fadvise64 (int __fd, __off64_t __offset, __off64_t __len,
  150.                 int __advise) __THROW;
  151. # endif
  152.  
  153.  
  154. /* Reserve storage for the data of the file associated with FD.
  155.  
  156.    This function is a possible cancellation points and therefore not
  157.    marked with __THROW.  */
  158. # ifndef __USE_FILE_OFFSET64
  159. extern int posix_fallocate (int __fd, __off_t __offset, __off_t __len);
  160. # else
  161. # ifdef __REDIRECT
  162. extern int __REDIRECT (posix_fallocate, (int __fd, __off64_t __offset,
  163.                      __off64_t __len),
  164.                posix_fallocate64);
  165. # else
  166. #  define posix_fallocate posix_fallocate64
  167. # endif
  168. # endif
  169. # ifdef __USE_LARGEFILE64
  170. extern int posix_fallocate64 (int __fd, __off64_t __offset, __off64_t __len);
  171. # endif
  172. #endif
  173.  
  174. __END_DECLS
  175.  
  176. #endif /* fcntl.h  */
  177.